home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / powerd / source / lib / chunky_lib.lha / Chunky / DrawTriangle.ass < prev    next >
Encoding:
Text File  |  2000-12-03  |  10.4 KB  |  637 lines

  1.     machine    mc68020
  2.     fpu    1
  3.  
  4. *******************************************************************************
  5. * name           offset
  6. * n              -4
  7. * ch             -8
  8. * list           -12
  9. * y2             -16
  10. * y1             -20
  11. * y0             -24
  12. * x2             -28
  13. * x1             -32
  14. * x0             -36
  15. * drx            -40
  16. * rx             -44
  17. * dlx            -48
  18. * lx             -52
  19. * y              -56
  20. * args
  21. * dest           16
  22. * dc             12
  23. * c              8
  24.     xdef    _DrawTriangle
  25. _DrawTriangle
  26.     link    a5,#-56
  27.     movem.l    d2-d6,-(a7)
  28.     lea    (-24,a7),a7
  29.     movea.l    (12,a5),a0
  30.     moveq    #0,d0
  31.     lea    (a0,d0.l*8),a0
  32.     move.l    (a0),(a7)
  33.     movea.l    (12,a5),a0
  34.     moveq    #0,d0
  35.     lea    (a0,d0.l*8),a0
  36.     move.l    (4,a0),(4,a7)
  37.     movea.l    (12,a5),a0
  38.     moveq    #1,d0
  39.     lea    (a0,d0.l*8),a0
  40.     move.l    (a0),(8,a7)
  41.     movea.l    (12,a5),a0
  42.     moveq    #1,d0
  43.     lea    (a0,d0.l*8),a0
  44.     move.l    (4,a0),(12,a7)
  45.     movea.l    (12,a5),a0
  46.     moveq    #2,d0
  47.     lea    (a0,d0.l*8),a0
  48.     move.l    (a0),(16,a7)
  49.     movea.l    (12,a5),a0
  50.     moveq    #2,d0
  51.     lea    (a0,d0.l*8),a0
  52.     move.l    (4,a0),(20,a7)
  53.     lea    list0,a0
  54.     move.l    (a7)+,(a0)
  55.     move.l    (a7)+,(4,a0)
  56.     move.l    (a7)+,(8,a0)
  57.     move.l    (a7)+,(12,a0)
  58.     move.l    (a7)+,(16,a0)
  59.     move.l    (a7)+,(20,a0)
  60.     move.l    a0,(-12,a5)
  61. repeat0
  62.     clr.l    (-8,a5)
  63.     clr.l    (-4,a5)
  64. for1
  65. if2
  66.     movea.l    (-12,a5),a0
  67.     move.l    (-4,a5),d1
  68.     lea    (a0,d1.l*8),a0
  69.     fmove.s    (4,a0),fp0
  70.     movea.l    (-12,a5),a0
  71.     move.l    (-4,a5),d2
  72.     addq.l    #1,d2
  73.     move.l    d2,d1
  74.     lea    (a0,d1.l*8),a0
  75.     fcmp.s    (4,a0),fp0
  76.     fble    end2
  77.     movea.l    (-12,a5),a0
  78.     move.l    (-4,a5),d1
  79.     addq.l    #1,d1
  80.     move.l    d1,d0
  81.     lea    (a0,d0.l*8),a0
  82.     movea.l    (-12,a5),a1
  83.     move.l    (-4,a5),d0
  84.     lea    (a1,d0.l*8),a1
  85.     move.l    (a1),d0
  86.     move.l    (a0),(a1)
  87.     move.l    d0,(a0)
  88.     movea.l    (-12,a5),a0
  89.     move.l    (-4,a5),d1
  90.     addq.l    #1,d1
  91.     move.l    d1,d0
  92.     lea    (a0,d0.l*8),a0
  93.     movea.l    (-12,a5),a1
  94.     move.l    (-4,a5),d0
  95.     lea    (a1,d0.l*8),a1
  96.     move.l    (4,a1),d0
  97.     move.l    (4,a0),(4,a1)
  98.     move.l    d0,(4,a0)
  99.     move.l    #-1,(-8,a5)
  100. end2
  101. nextfor1
  102.     addq.l    #1,(-4,a5)
  103.     cmpi.l    #1,(-4,a5)
  104.     ble    for1
  105. end1
  106.     move.l    (-8,a5),d0
  107.     moveq    #0,d1
  108.     cmp.l    d1,d0
  109.     bne    repeat0
  110. end0
  111.     movea.l    (-12,a5),a0
  112.     moveq    #0,d0
  113.     lea    (a0,d0.l*8),a0
  114.     move.l    (a0),(-36,a5)
  115.     movea.l    (-12,a5),a0
  116.     moveq    #0,d0
  117.     lea    (a0,d0.l*8),a0
  118.     move.l    (4,a0),(-24,a5)
  119.     movea.l    (-12,a5),a0
  120.     moveq    #1,d0
  121.     lea    (a0,d0.l*8),a0
  122.     move.l    (a0),(-32,a5)
  123.     movea.l    (-12,a5),a0
  124.     moveq    #1,d0
  125.     lea    (a0,d0.l*8),a0
  126.     move.l    (4,a0),(-20,a5)
  127.     movea.l    (-12,a5),a0
  128.     moveq    #2,d0
  129.     lea    (a0,d0.l*8),a0
  130.     move.l    (a0),(-28,a5)
  131.     movea.l    (-12,a5),a0
  132.     moveq    #2,d0
  133.     lea    (a0,d0.l*8),a0
  134.     move.l    (4,a0),(-16,a5)
  135. if4
  136.     fmove.s    (-24,a5),fp0
  137.     fcmp.s    (-20,a5),fp0
  138.     fseq    d1
  139.     extb.l    d1
  140.     move.l    d1,d0
  141.     fmove.s    (-36,a5),fp0
  142.     fcmp.s    (-32,a5),fp0
  143.     fsgt    d1
  144.     extb.l    d1
  145.     and.l    d1,d0
  146.     tst.l    d0
  147.     beq    end4
  148.     move.l    (-36,a5),d0
  149.     move.l    (-32,a5),(-36,a5)
  150.     move.l    d0,(-32,a5)
  151. end4
  152. if6
  153.     fmove.s    (-20,a5),fp0
  154.     fcmp.s    (-16,a5),fp0
  155.     fseq    d1
  156.     extb.l    d1
  157.     move.l    d1,d0
  158.     fmove.s    (-32,a5),fp0
  159.     fcmp.s    (-28,a5),fp0
  160.     fsgt    d1
  161.     extb.l    d1
  162.     and.l    d1,d0
  163.     tst.l    d0
  164.     beq    end6
  165.     move.l    (-32,a5),d0
  166.     move.l    (-28,a5),(-32,a5)
  167.     move.l    d0,(-28,a5)
  168. end6
  169. if8
  170.     fmove.s    (-24,a5),fp0
  171.     ftst.d    fp0
  172.     fslt    d1
  173.     extb.l    d1
  174.     move.l    d1,d0
  175.     fmove.s    (-20,a5),fp0
  176.     ftst.d    fp0
  177.     fslt    d1
  178.     extb.l    d1
  179.     and.l    d1,d0
  180.     fmove.s    (-16,a5),fp0
  181.     ftst.d    fp0
  182.     fslt    d1
  183.     extb.l    d1
  184.     and.l    d1,d0
  185.     tst.l    d0
  186.     beq    end8
  187.     moveq    #0,d0
  188.     bra    DrawTrianglefinish
  189. end8
  190. if10
  191.     fmove.s    (-36,a5),fp0
  192.     ftst.d    fp0
  193.     fslt    d1
  194.     extb.l    d1
  195.     move.l    d1,d0
  196.     fmove.s    (-32,a5),fp0
  197.     ftst.d    fp0
  198.     fslt    d1
  199.     extb.l    d1
  200.     and.l    d1,d0
  201.     fmove.s    (-28,a5),fp0
  202.     ftst.d    fp0
  203.     fslt    d1
  204.     extb.l    d1
  205.     and.l    d1,d0
  206.     tst.l    d0
  207.     beq    end10
  208.     moveq    #0,d0
  209.     bra    DrawTrianglefinish
  210. end10
  211. if12
  212.     fmove.s    (-24,a5),fp0
  213.     movea.l    (16,a5),a0
  214.     fcmp.l    (4,a0),fp0
  215.     fsge    d1
  216.     extb.l    d1
  217.     move.l    d1,d0
  218.     fmove.s    (-20,a5),fp0
  219.     movea.l    (16,a5),a0
  220.     fcmp.l    (4,a0),fp0
  221.     fsge    d1
  222.     extb.l    d1
  223.     and.l    d1,d0
  224.     fmove.s    (-16,a5),fp0
  225.     movea.l    (16,a5),a0
  226.     fcmp.l    (4,a0),fp0
  227.     fsge    d1
  228.     extb.l    d1
  229.     and.l    d1,d0
  230.     tst.l    d0
  231.     beq    end12
  232.     moveq    #0,d0
  233.     bra    DrawTrianglefinish
  234. end12
  235. if14
  236.     fmove.s    (-36,a5),fp0
  237.     movea.l    (16,a5),a0
  238.     fcmp.l    (a0),fp0
  239.     fsge    d1
  240.     extb.l    d1
  241.     move.l    d1,d0
  242.     fmove.s    (-32,a5),fp0
  243.     movea.l    (16,a5),a0
  244.     fcmp.l    (a0),fp0
  245.     fsge    d1
  246.     extb.l    d1
  247.     and.l    d1,d0
  248.     fmove.s    (-28,a5),fp0
  249.     movea.l    (16,a5),a0
  250.     fcmp.l    (a0),fp0
  251.     fsge    d1
  252.     extb.l    d1
  253.     and.l    d1,d0
  254.     tst.l    d0
  255.     beq    end14
  256.     moveq    #0,d0
  257.     bra    DrawTrianglefinish
  258. end14
  259. if16
  260.     fmove.s    (-24,a5),fp0
  261.     fcmp.s    (-20,a5),fp0
  262.     fbne    elseif16_1
  263.     move.l    (-36,a5),(-52,a5)
  264.     move.l    (-32,a5),(-44,a5)
  265.     fmove.s    (-28,a5),fp1
  266.     fsub.s    (-52,a5),fp1
  267.     fmove.x    fp1,fp0
  268.     fmove.s    (-16,a5),fp1
  269.     fsub.s    (-24,a5),fp1
  270.     fdiv.x    fp1,fp0
  271.     fmove.s    fp0,(-48,a5)
  272.     fmove.s    (-28,a5),fp1
  273.     fsub.s    (-44,a5),fp1
  274.     fmove.x    fp1,fp0
  275.     fmove.s    (-16,a5),fp1
  276.     fsub.s    (-24,a5),fp1
  277.     fdiv.x    fp1,fp0
  278.     fmove.s    fp0,(-40,a5)
  279.     fmove.s    (-24,a5),fp0
  280.     fmove.l    fp0,(-56,a5)
  281. for18
  282. if19
  283.     move.l    (-56,a5),d0
  284.     movea.l    (16,a5),a0
  285.     cmp.l    (4,a0),d0
  286.     blt    end19
  287.     moveq    #0,d0
  288.     bra    DrawTrianglefinish
  289. end19
  290. if21
  291.     move.l    (-56,a5),d0
  292.     moveq    #0,d1
  293.     cmp.l    d1,d0
  294.     blt    end21
  295.     movea.l    (16,a5),a0
  296.     fmove.s    (-52,a5),fp0
  297.     fmove.l    fp0,d0
  298.     fmove.s    (-44,a5),fp0
  299.     fmove.l    fp0,d1
  300.     move.l    (-56,a5),d2
  301.     move.l    (8,a5),d3
  302.     jsr    _HLine        ; HLine
  303. end21
  304.     fmove.s    (-52,a5),fp0
  305.     fadd.s    (-48,a5),fp0
  306.     fmove.s    fp0,(-52,a5)
  307.     fmove.s    (-44,a5),fp0
  308.     fadd.s    (-40,a5),fp0
  309.     fmove.s    fp0,(-44,a5)
  310. nextfor18
  311.     addq.l    #1,(-56,a5)
  312.     fmove.l    (-56,a5),fp0
  313.     fcmp.s    (-16,a5),fp0
  314.     fble    for18
  315. end18
  316.     bra    end16
  317. elseif16_1
  318.     fmove.s    (-20,a5),fp0
  319.     fcmp.s    (-16,a5),fp0
  320.     fbne    elseif16_2
  321.     move.l    (-36,a5),(-44,a5)
  322.     move.l    (-44,a5),(-52,a5)
  323.     fmove.s    (-32,a5),fp1
  324.     fsub.s    (-52,a5),fp1
  325.     fmove.x    fp1,fp0
  326.     fmove.s    (-16,a5),fp1
  327.     fsub.s    (-24,a5),fp1
  328.     fdiv.x    fp1,fp0
  329.     fmove.s    fp0,(-48,a5)
  330.     fmove.s    (-28,a5),fp1
  331.     fsub.s    (-44,a5),fp1
  332.     fmove.x    fp1,fp0
  333.     fmove.s    (-16,a5),fp1
  334.     fsub.s    (-24,a5),fp1
  335.     fdiv.x    fp1,fp0
  336.     fmove.s    fp0,(-40,a5)
  337.     fmove.s    (-24,a5),fp0
  338.     fmove.l    fp0,(-56,a5)
  339. for25
  340. if26
  341.     move.l    (-56,a5),d0
  342.     movea.l    (16,a5),a0
  343.     cmp.l    (4,a0),d0
  344.     blt    end26
  345.     moveq    #0,d0
  346.     bra    DrawTrianglefinish
  347. end26
  348. if28
  349.     move.l    (-56,a5),d0
  350.     moveq    #0,d1
  351.     cmp.l    d1,d0
  352.     blt    end28
  353.     movea.l    (16,a5),a0
  354.     fmove.s    (-52,a5),fp0
  355.     fmove.l    fp0,d0
  356.     fmove.s    (-44,a5),fp0
  357.     fmove.l    fp0,d1
  358.     move.l    (-56,a5),d2
  359.     move.l    (8,a5),d3
  360.     jsr    _HLine        ; HLine
  361. end28
  362.     fmove.s    (-52,a5),fp0
  363.     fadd.s    (-48,a5),fp0
  364.     fmove.s    fp0,(-52,a5)
  365.     fmove.s    (-44,a5),fp0
  366.     fadd.s    (-40,a5),fp0
  367.     fmove.s    fp0,(-44,a5)
  368. nextfor25
  369.     addq.l    #1,(-56,a5)
  370.     fmove.s    (-20,a5),fp0
  371.     fsub.w    #1,fp0
  372.     fmove.l    (-56,a5),fp1
  373.     fcmp.x    fp0,fp1
  374.     fble    for25
  375. end25
  376.     bra    end16
  377. elseif16_2
  378.     movem.l    d0,-(a7)
  379.     move.l    (-24,a5),-(a7)
  380.     move.l    (-16,a5),-(a7)
  381.     move.l    (-20,a5),-(a7)
  382.     move.l    (-36,a5),-(a7)
  383.     move.l    (-28,a5),-(a7)
  384.     jsr    _GetXLine        ; GetXLine
  385.     lea    (20,a7),a7
  386.     movem.l    (a7)+,d0
  387.     fcmp.s    (-32,a5),fp0
  388.     fble    elseif16_3
  389.     move.l    (-36,a5),(-44,a5)
  390.     move.l    (-44,a5),(-52,a5)
  391.     fmove.s    (-32,a5),fp1
  392.     fsub.s    (-52,a5),fp1
  393.     fmove.x    fp1,fp0
  394.     fmove.s    (-20,a5),fp1
  395.     fsub.s    (-24,a5),fp1
  396.     fdiv.x    fp1,fp0
  397.     fmove.s    fp0,(-48,a5)
  398.     fmove.s    (-28,a5),fp1
  399.     fsub.s    (-44,a5),fp1
  400.     fmove.x    fp1,fp0
  401.     fmove.s    (-16,a5),fp1
  402.     fsub.s    (-24,a5),fp1
  403.     fdiv.x    fp1,fp0
  404.     fmove.s    fp0,(-40,a5)
  405.     fmove.s    (-24,a5),fp0
  406.     fmove.l    fp0,(-56,a5)
  407. for32
  408. if33
  409.     move.l    (-56,a5),d0
  410.     movea.l    (16,a5),a0
  411.     cmp.l    (4,a0),d0
  412.     blt    end33
  413.     moveq    #0,d0
  414.     bra    DrawTrianglefinish
  415. end33
  416. if35
  417.     move.l    (-56,a5),d0
  418.     moveq    #0,d1
  419.     cmp.l    d1,d0
  420.     blt    end35
  421.     movea.l    (16,a5),a0
  422.     fmove.s    (-52,a5),fp0
  423.     fmove.l    fp0,d0
  424.     fmove.s    (-44,a5),fp0
  425.     fmove.l    fp0,d1
  426.     move.l    (-56,a5),d2
  427.     move.l    (8,a5),d3
  428.     jsr    _HLine        ; HLine
  429. end35
  430.     fmove.s    (-52,a5),fp0
  431.     fadd.s    (-48,a5),fp0
  432.     fmove.s    fp0,(-52,a5)
  433.     fmove.s    (-44,a5),fp0
  434.     fadd.s    (-40,a5),fp0
  435.     fmove.s    fp0,(-44,a5)
  436. nextfor32
  437.     addq.l    #1,(-56,a5)
  438.     fmove.s    (-20,a5),fp0
  439.     fsub.w    #1,fp0
  440.     fmove.l    (-56,a5),fp1
  441.     fcmp.x    fp0,fp1
  442.     fble    for32
  443. end32
  444.     fmove.s    (-28,a5),fp1
  445.     fsub.s    (-52,a5),fp1
  446.     fmove.x    fp1,fp0
  447.     fmove.s    (-16,a5),fp1
  448.     fsub.s    (-20,a5),fp1
  449.     fdiv.x    fp1,fp0
  450.     fmove.s    fp0,(-48,a5)
  451.     fmove.s    (-20,a5),fp0
  452.     fmove.l    fp0,(-56,a5)
  453. for37
  454. if38
  455.     move.l    (-56,a5),d0
  456.     movea.l    (16,a5),a0
  457.     cmp.l    (4,a0),d0
  458.     blt    end38
  459.     moveq    #0,d0
  460.     bra    DrawTrianglefinish
  461. end38
  462. if40
  463.     move.l    (-56,a5),d0
  464.     moveq    #0,d1
  465.     cmp.l    d1,d0
  466.     blt    end40
  467.     movea.l    (16,a5),a0
  468.     fmove.s    (-52,a5),fp0
  469.     fmove.l    fp0,d0
  470.     fmove.s    (-44,a5),fp0
  471.     fmove.l    fp0,d1
  472.     move.l    (-56,a5),d2
  473.     move.l    (8,a5),d3
  474.     jsr    _HLine        ; HLine
  475. end40
  476.     fmove.s    (-52,a5),fp0
  477.     fadd.s    (-48,a5),fp0
  478.     fmove.s    fp0,(-52,a5)
  479.     fmove.s    (-44,a5),fp0
  480.     fadd.s    (-40,a5),fp0
  481.     fmove.s    fp0,(-44,a5)
  482. nextfor37
  483.     addq.l    #1,(-56,a5)
  484.     fmove.s    (-16,a5),fp0
  485.     fsub.w    #1,fp0
  486.     fmove.l    (-56,a5),fp1
  487.     fcmp.x    fp0,fp1
  488.     fble    for37
  489. end37
  490.     bra    end16
  491. elseif16_3
  492.     move.l    (-36,a5),(-44,a5)
  493.     move.l    (-44,a5),(-52,a5)
  494.     fmove.s    (-28,a5),fp1
  495.     fsub.s    (-52,a5),fp1
  496.     fmove.x    fp1,fp0
  497.     fmove.s    (-16,a5),fp1
  498.     fsub.s    (-24,a5),fp1
  499.     fdiv.x    fp1,fp0
  500.     fmove.s    fp0,(-48,a5)
  501.     fmove.s    (-32,a5),fp1
  502.     fsub.s    (-44,a5),fp1
  503.     fmove.x    fp1,fp0
  504.     fmove.s    (-20,a5),fp1
  505.     fsub.s    (-24,a5),fp1
  506.     fdiv.x    fp1,fp0
  507.     fmove.s    fp0,(-40,a5)
  508.     fmove.s    (-24,a5),fp0
  509.     fmove.l    fp0,(-56,a5)
  510. for44
  511. if45
  512.     move.l    (-56,a5),d0
  513.     movea.l    (16,a5),a0
  514.     cmp.l    (4,a0),d0
  515.     blt    end45
  516.     moveq    #0,d0
  517.     bra    DrawTrianglefinish
  518. end45
  519. if47
  520.     move.l    (-56,a5),d0
  521.     moveq    #0,d1
  522.     cmp.l    d1,d0
  523.     blt    end47
  524.     movea.l    (16,a5),a0
  525.     fmove.s    (-52,a5),fp0
  526.     fmove.l    fp0,d0
  527.     fmove.s    (-44,a5),fp0
  528.     fmove.l    fp0,d1
  529.     move.l    (-56,a5),d2
  530.     move.l    (8,a5),d3
  531.     jsr    _HLine        ; HLine
  532. end47
  533.     fmove.s    (-52,a5),fp0
  534.     fadd.s    (-48,a5),fp0
  535.     fmove.s    fp0,(-52,a5)
  536.     fmove.s    (-44,a5),fp0
  537.     fadd.s    (-40,a5),fp0
  538.     fmove.s    fp0,(-44,a5)
  539. nextfor44
  540.     addq.l    #1,(-56,a5)
  541.     fmove.s    (-20,a5),fp0
  542.     fsub.w    #1,fp0
  543.     fmove.l    (-56,a5),fp1
  544.     fcmp.x    fp0,fp1
  545.     fble    for44
  546. end44
  547.     fmove.s    (-28,a5),fp1
  548.     fsub.s    (-44,a5),fp1
  549.     fmove.x    fp1,fp0
  550.     fmove.s    (-16,a5),fp1
  551.     fsub.s    (-20,a5),fp1
  552.     fdiv.x    fp1,fp0
  553.     fmove.s    fp0,(-40,a5)
  554.     fmove.s    (-20,a5),fp0
  555.     fmove.l    fp0,(-56,a5)
  556. for49
  557. if50
  558.     move.l    (-56,a5),d0
  559.     movea.l    (16,a5),a0
  560.     cmp.l    (4,a0),d0
  561.     blt    end50
  562.     moveq    #0,d0
  563.     bra    DrawTrianglefinish
  564. end50
  565. if52
  566.     move.l    (-56,a5),d0
  567.     moveq    #0,d1
  568.     cmp.l    d1,d0
  569.     blt    end52
  570.     movea.l    (16,a5),a0
  571.     fmove.s    (-52,a5),fp0
  572.     fmove.l    fp0,d0
  573.     fmove.s    (-44,a5),fp0
  574.     fmove.l    fp0,d1
  575.     move.l    (-56,a5),d2
  576.     move.l    (8,a5),d3
  577.     jsr    _HLine        ; HLine
  578. end52
  579.     fmove.s    (-52,a5),fp0
  580.     fadd.s    (-48,a5),fp0
  581.     fmove.s    fp0,(-52,a5)
  582.     fmove.s    (-44,a5),fp0
  583.     fadd.s    (-40,a5),fp0
  584.     fmove.s    fp0,(-44,a5)
  585. nextfor49
  586.     addq.l    #1,(-56,a5)
  587.     fmove.s    (-16,a5),fp0
  588.     fsub.w    #1,fp0
  589.     fmove.l    (-56,a5),fp1
  590.     fcmp.x    fp0,fp1
  591.     fble    for49
  592. end49
  593. end16
  594. DrawTriangleend
  595.     moveq    #0,d0
  596. DrawTrianglefinish
  597.     movem.l    (a7)+,d2-d6
  598.     unlk    a5
  599.     rts
  600. *******************************************************************************
  601. * name           offset
  602. * args
  603. * y1             24
  604. * y2             20
  605. * y3             16
  606. * x1             12
  607. * x2             8
  608.     xdef    _GetXLine
  609. _GetXLine
  610.     link    a5,#0
  611.     fmovem.x    fp2,-(a7)
  612.     fmove.s    (12,a5),fp2
  613.     fsub.s    (8,a5),fp2
  614.     fmove.x    fp2,fp1
  615.     fmove.s    (20,a5),fp2
  616.     fsub.s    (16,a5),fp2
  617.     fmul.x    fp2,fp1
  618.     fmove.s    (20,a5),fp2
  619.     fsub.s    (24,a5),fp2
  620.     fdiv.x    fp2,fp1
  621.     fmove.x    fp1,fp0
  622.     fadd.s    (8,a5),fp0
  623. GetXLineend
  624. GetXLinefinish
  625.     fmovem.x    (a7)+,fp2
  626.     unlk    a5
  627.     rts
  628.     xref    _HLine
  629.     section    ".tocd",data
  630. list0    dc.s    0
  631.     dc.s    0
  632.     dc.s    0
  633.     dc.s    0
  634.     dc.s    0
  635.     dc.s    0
  636.     cnop    0,2
  637.